package com.bdf.ipharma.dao;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.bdf.ipharma.model.Usuario;
import com.bdf.ipharma.model.UsuarioPerfil;
import com.bdf.ipharma.model.bo.Asignacion;
import com.ibatis.sqlmap.client.SqlMapClient;

/**
 *
 * @author edw
 */
@Repository(value = "usuarioDao")
public class UsuarioDAO extends SqlMapClientDaoSupport {

    // empty constructor
    public UsuarioDAO() {
    }

    // autowired constructor
    // i dont know why, but i cant autowired sqlMapClient directly
    // it will cause  java.lang.IllegalArgumentException: Property 'sqlMapClient' is required
    @Autowired
    public UsuarioDAO(SqlMapClient sqlMapClient) {
        setSqlMapClient(sqlMapClient);
    }

    public void insert(Usuario usuario){
        getSqlMapClientTemplate().insert("usuario.insertUser",usuario);
    }

    public List<Usuario> select(){
        return getSqlMapClientTemplate().queryForList("usuario.selectAllUsers");
    }
    
    public Usuario login(String username, String password){
    	Map paramM = new HashMap();  
    	paramM.put("login", username);  
    	paramM.put("password", password); 
    	return (Usuario)getSqlMapClientTemplate().queryForObject("usuario.signUpUsers", paramM);
    }
    
    public List<UsuarioPerfil> getUsuarioPerfiles(){    	
    	return getSqlMapClientTemplate().queryForList("usuario.getVistaUsuarioPerfiles");
    }
    
    /**
     * Retorna la lista de usuarios para asignar en pantalla EXTRAER.
     * @return lista de Productos
     */
    public List<Asignacion> getAsignaciones(){    	
    	
    	return getSqlMapClientTemplate().queryForList("usuario.getAsignaciones");
     
    }
    
}
